import Data.Binary    ( decodeFile )
import Image          ( imgToFits )
import Instrument     ( Instrument(..) )
import Instrument.CCD ( CCD(..) )
import Instrument.PSF ( loadPSF, mkGaussPsf )
import HSimEngine     ( genImage )

-- 

main = do
   f  <- decodeFile "db/filter/flat.enc"
   mr <- decodeFile "db/dev/mr.enc"
   qe <- decodeFile "db/dev/qe.enc"
   bs <- decodeFile "db/dev/bs_r.enc"

   -- Функция рассеяния точки
   psf <- loadPSF (210,1/2) [ "db/zemax/" ++show x ++ ".TXTa" | x <- [1..9]]

   -- эффективная площадь телескопа
   let a = 3.14*(170/2)^2

   -- спектральная эффективность (чувствительность) инструмента	
   let s = a * (mr*mr) * qe * bs * f

   -- инструмент
   let i = Instrument ccd psf s

   img <- genImage i 10 400

--    imgToPngFile "cosmicRay.png" img

   imgToFits "out/ccd.fits" img

-- Функция рассеяния точки
--psf = mkGaussPsf 2 2

-- ПЗС приемник
ccd =  CCD { bias      = 100   -- байс
           , dnoise    = 5     -- темновой ток
           , rnoise    = 10    -- шум считывания
           , thickness = 1     -- толщина чувствительного слоя (в пикселях)
           , width     = 1096  -- ширина матрицы (в пикселях)
           , height    = 1096  -- высота матрици (в пикселях)
           , psize     = (16e-4,16e-4) } -- размер пикселя (в сантиметрах)